package leetcode.p168;

/**
 * @author: trtan
 * @date: 2021-06-29 07:11
 **/
public class ExcelSheetColumnTitle {
    public static void main(String[] args) {
        ExcelSheetColumnTitle excelSheetColumnTitle = new ExcelSheetColumnTitle();
        System.out.println(excelSheetColumnTitle.convertToTitle(701));
    }
    /**
     * 将10进制转26进制 但是这个26进制没有0 有26
     * @param columnNumber
     * @return java.lang.String
     * @author trtan
     * @date 2021/6/29 7:17
     */
    public String convertToTitle(int columnNumber) {
        StringBuffer sb = new StringBuffer();
        // 如果值小于等于26 直接可以对应A-Z中
        while (columnNumber > 26) {
            int y = columnNumber % 26;
            int x = columnNumber / 26;
            // 如果取模后等于0 说明是26的倍数 即可从高位借1
            if (y == 0) {
                x--;
                sb.append('Z');
            } else {
                sb.append((char)('A' + y - 1));
            }
            columnNumber = x;
        }
        sb.append((char)('A' + columnNumber - 1));
        return sb.reverse().toString();
    }
}
